/**
 * 
 */
package com.mpo.ejb.servicio.impl;



import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.mpo.common.util.SeguridadesException;
import com.mpo.common.util.UtilAplication;
import com.mpo.ejb.persistence.dao.FactoryDAO;
//import com.mpo.ejb.persistence.entities.Modulo;

import com.mpo.ejb.persistence.entities.HistoricoTransaccione;
import com.mpo.ejb.servicio.ServicioTransaccion;
import com.mpo.ejb.servicio.impl.ServicioTransaccionImpl;

/**
 * @author 
 *
 */
@Stateless
public class ServicioTransaccionImpl implements ServicioTransaccion{
	
	private static final Logger slf4jLogger = LoggerFactory.getLogger(ServicioTransaccionImpl.class);
	
	@EJB
	private FactoryDAO factoryDAO;

	@Override
	@TransactionAttribute (TransactionAttributeType.REQUIRED)
	public HistoricoTransaccione registrarTransaccion(String nombreClaseTransaccion, String nombreTransaccion,
			String enumTipoTransaccion, Integer idUsuarioLogueado)
			throws SeguridadesException {
		
slf4jLogger.info("metodo registrarTransaccion");
		
HistoricoTransaccione historicoTransacciones = new HistoricoTransaccione();
HistoricoTransaccione historicoTransaccionesResultado = new HistoricoTransaccione();
		
		try {
				historicoTransacciones.setNombreTransaccion(UtilAplication.appendStringBuilder(nombreClaseTransaccion, " ", nombreTransaccion).toString());
				historicoTransacciones.setFechaTransaccion(UtilAplication.obtenerFechaActual());
				historicoTransacciones.setDetalleCatalogo(factoryDAO.getDetalleCatalogoDAOImpl().find(Integer.parseInt(enumTipoTransaccion)));
				historicoTransacciones.setUsuario(factoryDAO.getUsuarioDAOImpl().find(idUsuarioLogueado));
				historicoTransaccionesResultado = factoryDAO.getHistoricoTransaccioneDAOImpl().create(historicoTransacciones);
				historicoTransacciones = null;		
		} catch (Exception e) {
			throw new SeguridadesException(e.getMessage());
		}
		
		return historicoTransaccionesResultado;
	}
}
